/*
 * Copyright (c) 2011 Shanda Corporation. All rights reserved.
 *
 * Created on 2011-2-17.
 */

package com.whq.thrift.api.common.spring.datasource;

/**
 * 数据源上下文句柄
 * 
 * 在dao或service层通过 {@link #set(String)} 向当前线程设置访问数据源字符串, 由DynamicDataSource类自动调用  
 *
 * @author wanghuaiqiang
 */
public class DataSourceContextHolder {
    private static final ThreadLocal<String> DS_CONTEXT = new ThreadLocal<String>();  
    
    /** 
     * 获取当前线程的数据key 由<code>DynamicDataSource</code>类的 
     * {@link DynamicDataSource#determineCurrentLookupKey()}使用 
     *  
     * @return 
     */  
    public static String get() {  
        return DS_CONTEXT.get();  
    }  
  
    /** 
     * 设置数据源key, 
     *  
     * @param dataSourceKey 
     */  
    public static void set(String dataSourceKey) {  
        DS_CONTEXT.set(dataSourceKey);  
    }  
  
    /** 
     * 移除当前线程中设置的数据源key 
     */  
    public static void remove() {  
        DS_CONTEXT.remove();  
    }  
}
